Unityの地味に勤勉な挙動


概要

特に必要の無い地味な知識を提供。



importからのimportは発生しない

Unityに画像とかを放り込んで発生する読み込み処理について、

まあ適当にimportとか呼称してるんだけど、


たとえばPostProcessor系の処理で、読み込み処理中にファイルを作ったりした場合、

その瞬間では読み込みが発生しない。 つまり.metaファイルが作られない状態が形成できる。


ネストとか無限ループするのを避けてるっぽい。

安全。



importの動作

Project Settings で visible meta files を選んでいる場合は、

次のような動作が確認できる。

・.metaファイルが存在していない場合、読み込みが発生する

・読み込み後、.metaファイルが作成される

・内部DBにも登録される(たぶん.metaファイル内でのGUIDとフォルダパスをキーにしてる)



importのタイミング

importの発動するタイミングは以下の通り

・Unity起動中

・Unity起動時



放り込み方による差

.metaファイルが無いものに対して、DBへの登録と読み込み、.meta作成が行われる。

.metaファイルがあったとしても、DBへの登録が存在しない場合がありえる。

たとえばimport後のフォルダをAssetsフォルダ外部に持ち出してUnityを終了し、

Unity起動時にAssets以下の別フォルダに放り込んだ場合。


その場合は、.metaファイルの情報をもとに、importをスキップして読み込んでDB登録してくれるケースと、

GUIDだけが書き変わってimportをスキップして読み込んでDB登録してくれるケースと、

importのスキップが発生せず読み直しが発生するケースがある。


GUIDだけが書き変わるケースだと

The GUID for Assets/AssetRails/temp/Resources/prefabricate/chara/idol_01 is already in use by Assets/AssetRails/temp/Resources/import/chara/idol_01. Assigning a new guid.


って言われる。